home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 4 / QRZ Ham Radio Callsign Database - Volume 4.iso / files / dsp / 56ktools / dspkgctr.z / dspkgctr / gcc / config.gcc < prev    next >
Text File  |  1992-06-08  |  9KB  |  424 lines

  1. #!/bin/sh
  2. # Configuration script for GNU CC
  3. #   Copyright (C) 1988 Free Software Foundation, Inc.
  4.  
  5. #    $Id: config.gcc,v 1.10 92/04/01 17:39:42 pete Exp $
  6.  
  7. #This file is part of GNU CC.
  8.  
  9. #GNU CC is free software; you can redistribute it and/or modify
  10. #it under the terms of the GNU General Public License as published by
  11. #the Free Software Foundation; either version 1, or (at your option)
  12. #any later version.
  13.  
  14. #GNU CC is distributed in the hope that it will be useful,
  15. #but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17. #GNU General Public License for more details.
  18.  
  19. #You should have received a copy of the GNU General Public License
  20. #along with GNU CC; see the file COPYING.  If not, write to
  21. #the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  22.  
  23. #
  24. # Shell script to create proper links to machine-dependent files in
  25. # preparation for compiling gcc.
  26. #
  27. # Usage: config.gcc [vint] machine
  28. #
  29. # If config.gcc succeeds, it leaves its status in config.status.
  30. # If config.gcc fails after disturbing the status quo, 
  31. #     config.status is removed.
  32. #
  33.  
  34. progname=$0
  35.  
  36. remove=rm
  37. hard_link=ln
  38. symbolic_link='ln -s'
  39.  
  40. #for Test
  41. #remove="echo rm"
  42. #hard_link="echo ln"
  43. #symbolic_link="echo ln -s"
  44.  
  45. for arg in $*;
  46. do
  47.   case $arg in
  48.    -srcdir=*)
  49.     srcdir=`echo $arg | sed s/-srcdir=//`
  50.     ;;
  51.    -vint)
  52.     vint=on
  53.     ;;
  54.    *)
  55.     machine=$arg
  56.     ;;
  57.   esac
  58. done
  59.  
  60. # Find the source files, if location was not specified.
  61. if [ x$srcdir = x ]
  62. then
  63.     srcdirdefaulted=1
  64.     srcdir=.
  65.     if [ ! -r tree.c ]
  66.     then
  67.         srcdir=..
  68.     fi
  69. fi
  70.  
  71. if [ ! -r ${srcdir}/tree.c ]
  72. then
  73.     if [ x$srcdirdefaulted = x ]
  74.     then
  75.       echo "$progname: Can't find compiler sources in \`${srcdir}'." 1>&2
  76.     else
  77.       echo "$progname: Can't find compiler sources in \`.' or \`..'." 1>&2
  78.     fi
  79.     exit 1
  80. fi
  81.  
  82. if [ x$machine != x ];
  83. then
  84.     case $machine in
  85.     vax)                    # for vaxen running bsd
  86.         ;;
  87.         tahoe)                                  # for tahoe's running bsd
  88.                 ;;
  89.         harris)                                 # for harris tahoe, using COFF.
  90.         cpu_type=tahoe
  91.                 ;;
  92.     vms)                    # for vaxen running VMS
  93.         cpu_type=vax
  94.         configuration_file=xm-${machine}.h
  95.         target_machine=tm-${machine}.h
  96.         ;;
  97.     vax-sysv | vaxv)            # for vaxen running system V
  98.         cpu_type=vax
  99.         configuration_file=xm-vaxv.h
  100.         target_machine=tm-vaxv.h
  101.         ;;
  102.     sequent-i386)            # for Intel 80386's on Sequent Symmetry
  103.         cpu_type=i386
  104.         configuration_file=xm-i386.h
  105.         target_machine=tm-seq386.h
  106.         ;;
  107.     i386-mach)
  108.         cpu_type=i386
  109.         configuration_file=xm-i386.h
  110.         target_machine=tm-i386gas.h
  111.         ;;
  112.     i386-sysv | i386v)        # for Intel 80386's running system V
  113.         machine=i386v
  114.         cpu_type=i386
  115.         configuration_file=xm-${machine}.h
  116.         ;;
  117.     i386-sysv-gas | i386g)
  118.         cpu_type=i386
  119.         configuration_file=xm-i386v.h
  120.         target_machine=tm-i386gas.h
  121.         ;;        
  122.     i386-aix | ps2-aix | aix386 | ps2aix )        # for IBM PS/2 running AIX
  123.         machine=aix386
  124.         cpu_type=i386
  125.         configuration_file=xm-${machine}.h
  126.         ;;
  127.     i860)
  128.         ;;
  129.     next )
  130.         cpu_type=m68k
  131.         target_machine=tm-next.h
  132.         ;;
  133.     sun4 | sun-4 | sun4-os3 | sun-4-os3)
  134.         cpu_type=sparc
  135.         target_machine=tm-sun4os3.h
  136.         ;;
  137.     dsp56k-sun4 )
  138.         cpu_type=dsp56k
  139.         configuration_file=xm-sparc.h
  140.         target_machine=tm-dsp56k.h
  141.         ;;
  142.     dsp56k-sun3 )
  143.         cpu_type=dsp56k
  144.         configuration_file=xm-m68k.h
  145.         target_machine=tm-dsp56k.h
  146.         ;;
  147.     dsp56k-next )
  148.         cpu_type=dsp56k
  149.         configuration_file=xm-m68k.h
  150.         target_machine=tm-dsp56k.h
  151.         ;;
  152.     dsp56k-pc386 )
  153.         cpu_type=dsp56k
  154.         configuration_file=xm-i386.h
  155.         target_machine=tm-dsp56k.h
  156.         ;;
  157.     dsp56k-dec )
  158.         cpu_type=dsp56k
  159.         configuration_file=xm-mips.h
  160.         target_machine=tm-dsp56k.h
  161.             ;;
  162.     dsp56k-88k-dgux)
  163.         cpu_type=dsp56k
  164.         configuration_file=xm-m88kdgux.h
  165.         target_machine=tm-dsp56k.h
  166.         ;;
  167.  
  168.     dsp96k-sun4 )
  169.         cpu_type=dsp96k
  170.         configuration_file=xm-sparc.h
  171.         target_machine=tm-dsp96k.h
  172.         ;;
  173.     dsp96k-sun3 )
  174.         cpu_type=dsp96k
  175.         configuration_file=xm-m68k.h
  176.         target_machine=tm-dsp96k.h
  177.         ;;
  178.     dsp96k-next )
  179.         cpu_type=dsp96k
  180.         configuration_file=xm-m68k.h
  181.         target_machine=tm-dsp96k.h
  182.         ;;
  183.     dsp96k-pc386 )
  184.         cpu_type=dsp96k
  185.         configuration_file=xm-i386.h
  186.         target_machine=tm-dsp96k.h
  187.         ;;
  188.     dsp96k-dec )
  189.         cpu_type=dsp96k
  190.         configuration_file=xm-mips.h
  191.         target_machine=tm-dsp96k.h
  192.             ;;
  193.     dsp96k-88k-dgux)
  194.         cpu_type=dsp96k
  195.         configuration_file=xm-m88kdgux.h
  196.         target_machine=tm-dsp96k.h
  197.         ;;
  198.  
  199.     sun3 | sun-3 | sun3-os3 | sun-3-os3)
  200.         cpu_type=m68k
  201.         target_machine=tm-sun3os3.h
  202.         ;;
  203.     sun3-nfp | sun-3-nfp | sun3-nfp-os3 | sun-3-nfp-os3)
  204.         cpu_type=m68k
  205.         target_machine=tm-sun3os3nf.h
  206.         ;;
  207.     sun2 | sun-2 | sun2-os3 | sun-2-os3)
  208.         cpu_type=m68k
  209.         target_machine=tm-sun2.h
  210.         ;;
  211.     sun386 | sun386i | roadrunner)
  212.         cpu_type=i386
  213.         configuration_file=xm-sun386i.h
  214.         target_machine=tm-sun386i.h
  215.         ;;
  216.     sun4-os4 | sun-4-os4)
  217.         cpu_type=sparc
  218.         target_machine=tm-sparc.h
  219.         ;;
  220.     sun3-os4 | sun-3-os4)
  221.         cpu_type=m68k
  222.         target_machine=tm-sun3.h
  223.         ;;
  224.     sun3-nfp-os4 | sun-3-nfp-os4)
  225.         cpu_type=m68k
  226.         target_machine=tm-sun3-nfp.h
  227.         ;;
  228.     sun2-os4 |sun-2-os4)
  229.         cpu_type=m68k
  230.         target_machine=tm-sun2.h
  231.         ;;
  232.     hp9k320)            # HP 9000 series 300 with gcc alone
  233.         cpu_type=m68k
  234.         configuration_file=xm-hp9k320.h
  235.         ;;
  236.     hp9k320-old)            # HP 9000 series 300 with gcc alone
  237.         cpu_type=m68k
  238.         target_machine=tm-hp9k32old.h
  239.         configuration_file=xm-hp9k320.h
  240.         ;;
  241.     hp9k320-gas | hp9k320g)        #    with gnu as, ld and gdb
  242.         cpu_type=m68k
  243.         configuration_file=xm-hp9k320.h
  244.         target_machine=tm-hp9k320g.h
  245.         ;;
  246.     hp9k320-bsd)            # HP 9000/3xx running Berkeley Unix
  247.         cpu_type=m68k
  248.         target_machine=tm-hp9k3bsd.h
  249.         ;;
  250.     isi68)
  251.         cpu_type=m68k
  252.         ;;
  253.     isi68-nfp)
  254.         cpu_type=m68k
  255.         ;;
  256.     news | news800)
  257.             configuration_file=xm-m68k.h
  258.             target_machine=tm-news.h
  259.         cpu_type=m68k
  260.         ;;
  261.     news-gas | news-g)
  262.             configuration_file=xm-m68k.h
  263.             target_machine=tm-newsgas.h
  264.         cpu_type=m68k
  265.         ;;
  266.     altos | altos3068)        # Altos 3068 with gnu as, ld and gdb
  267.             cpu_type=m68k
  268.             configuration_file=xm-altos3068.h
  269.             target_machine=tm-altos3068.h
  270.             ;;
  271.     3b1)
  272.         cpu_type=m68k
  273.         configuration_file=xm-${machine}.h
  274.         ;;
  275.     3b1g | 3b1-gas)
  276.         machine=3b1g
  277.         cpu_type=m68k
  278.         configuration_file=xm-3b1.h
  279.         ;;
  280.     sequent-ns32k | sequent)
  281.         machine=sequent
  282.         cpu_type=ns32k
  283.         ;;
  284.     encore)
  285.         cpu_type=ns32k
  286.         ;;
  287.     genix)
  288.         machine=ns32k
  289.         cpu_type=ns32k
  290.         configuration_file=xm-genix.h
  291.         ;;
  292.         m88k-dgux)
  293.         machine=m88k-dgux
  294.         cpu_type=m88k
  295.         target_machine=tm-m88kdgux.h
  296.         configuration_file=xm-m88kdgux.h
  297.         ;;
  298.     88000)
  299.         cpu_type=m88k
  300.         target_machine=tm-${cpu_type}.h
  301.         ;;
  302.     alliant)                # Alliant FX/8
  303.         ;;
  304.     convex-c1)                # Convex C1
  305.         target_machine=tm-convex1.h
  306.         cpu_type=convex
  307.         ;;
  308.     convex-c2)                # Convex C2
  309.         target_machine=tm-convex2.h
  310.         cpu_type=convex
  311.         ;;
  312.     iris)                    # Mostly like a MIPS.
  313.         cpu_type=mips
  314.         target_machine=tm-iris.h
  315.         configuration_file=xm-iris.h
  316.         ;;
  317.     mips)                # Default MIPS environment
  318.         ;;
  319.     mips-sysv)            # SYSV variant of MIPS system.
  320.         cpu_type=mips
  321.         target_machine=tm-mips-sysv.h
  322.             ;;
  323.     mips-bsd43)            # BSD 4.3 variant of MIPS system.
  324.         cpu_type=mips
  325.         target_machine=tm-mips-bsd.h
  326.             ;;
  327.     dec-3100 | decstation)        # Decstation or pmax.
  328.         cpu_type=mips
  329.         target_machine=tm-decstatn.h
  330.             ;;
  331.     apollo68)
  332.         cpu_type=m68k
  333.         ;;
  334.     pyr | pyramid)
  335.         machine=pyr
  336.         ;;
  337. #    370)
  338. #        machine=370
  339. #        ;;
  340.     esac
  341.  
  342.         # if cpu_type is not set, define cpu_type to machine.
  343.         #
  344.     cpu_type=${cpu_type-$machine}
  345.     configuration_file=${configuration_file-xm-$cpu_type.h}
  346.     target_machine=${target_machine-tm-$machine.h}
  347.     machine_description=${cpu_type}.md
  348.     aux_output=${aux_output-out-$cpu_type.c}
  349.  
  350.     if [ xx${vint} = xx ]
  351.     then
  352.         files="$configuration_file $target_machine
  353.             $machine_description $aux_output"
  354.         links="config.h tm.h md aux-output.c"
  355.     else
  356.         files="$configuration_file tm-vmc.h $target_machine
  357.             $machine_description $aux_output"
  358.         links="config.h tm.h tm-pre.h md aux-output.c"
  359.     fi
  360.  
  361.     while [ -n "$files" ]
  362.     do
  363.         # set file to car of files, files to cdr of files
  364.         set $files; file=$1; shift; files=$*
  365.         set $links; link=$1; shift; links=$*
  366.  
  367.         if [ ! -r ${srcdir}/config/$file ]
  368.         then
  369.             echo "$progname: cannot create a link \`$link'," 1>&2
  370.             echo "since the file \`config/$file' does not exist." 1>&2
  371.             exit 1
  372.         fi
  373.  
  374.         $remove -f $link
  375.         rm -f config.status
  376.         # Make a symlink if possible, otherwise try a hard link
  377.         $symbolic_link ${srcdir}/config/$file $link 2>/dev/null || $hard_link ${srcdir}/config/$file $link
  378.  
  379.         if [ ! -r $link ]
  380.         then
  381.             echo "$progname: unable to link \`$link' to \`${srcdir}/config/$file'." 1>&2
  382.             exit 1
  383.         fi
  384.         echo "Linked \`$link' to \`${srcdir}/config/$file'."
  385.     done
  386.  
  387.     if [ xx${vint} = xx ]
  388.     then
  389.         echo "Links are now set up for use with a $machine." \
  390.             | tee config.status
  391.     else
  392.         echo "Links are now set up for use with a $machine (vint)." \
  393.             | tee config.status
  394.     fi
  395.  
  396.     # Install a makefile, and make it set VPATH
  397.     # if necessary so that the sources are found.
  398.     # Also change its value of srcdir.
  399.     # Also create a .gdbinit file which runs the one in srcdir
  400.     # and tells GDB to look there for source files.
  401.     case $srcdir in
  402.     .)
  403.         ;;
  404.     *)
  405.         echo "VPATH = ${srcdir}" > x
  406.         cat x ${srcdir}/Makefile | sed "s@^srcdir = \.@srcdir = ${srcdir}@" > Makefile
  407.         rm x
  408.         echo "dir ${srcdir}" > .gdbinit
  409.         echo "source ${srcdir}/.gdbinit" >> .gdbinit
  410.         ;;
  411.     esac
  412.  
  413.     exit 0
  414. else
  415.     echo "Usage: $progname machine"
  416.     echo -n "Where \`machine' is something like "
  417.     echo "\`vax', \`sun3', \`umax', etc."
  418.     if [ -r config.status ]
  419.     then
  420.         cat config.status
  421.     fi
  422.     exit 1
  423. fi
  424.